
package org.colswe.junitlab.logica.helper;
import java.io.*;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import org.colswe.junitlab.modelo.Festivo;
import org.colswe.junitlab.modelo.Sistema;


/**
 * Carga la lista de los festivos a partir de un fichero ubicado en C:/festivos.txt
 * este archivo tiene una lista con los dias festivos especificados para las pruebas y cada dia tiene el formato:
 * dia/mes/anio/esLaborable
 * si es laborable tendrá una 'l' sino 'n'
 */
public class LecturaFestivos {
	public static void leerFestivos() {
		  File archivo = null;
	      FileReader fr = null;
	      BufferedReader br = null;
	      try {
	          archivo = new File ("festivos.txt");
	          fr = new FileReader (archivo);
	          br = new BufferedReader(fr);
	          String linea;
	          List<Festivo> festivos = new ArrayList<Festivo>();
	          while((linea=br.readLine())!=null) {
	        	  Calendar c = Calendar.getInstance();
	        	  String[] fechaArray = linea.split("/");
	        	  int dia = Integer.parseInt(fechaArray[0]);
	        	  int mes = Integer.parseInt(fechaArray[1])-1;
	        	  int anio = Integer.parseInt(fechaArray[2]);
	        	  boolean esLaborable = (fechaArray[3].equals("l")?true:false);
	        	  c.setTimeInMillis(0);
	        	  c.set(anio, mes, dia);
	        	  Date fecha = c.getTime();
	        	  Festivo festivo = new Festivo();
	        	  festivo.setFecha(fecha);
	        	  festivo.setLaborable(esLaborable);
	        	  festivos.add(festivo);
	          }  
	          Sistema.getInstance().setEntidades(festivos);
	       }
	       catch(Exception e){
	          e.printStackTrace();
	       }finally{
	          try{                    
	             if( null != fr ){   
	                fr.close();     
	             }                  
	          }catch (Exception e2){ 
	             e2.printStackTrace();
	          }
	       }
	}
}
